次の形式のファイルがあります。
Q
L
A D
1 10
2 21
3 22
4 5
5 9
「Q」または「L」で始まる行をスキップし、2番目の列の値が10より大きい行を削除し、コンテンツ全体を新しいファイルに保存する必要があります。出力ファイルの例:
Output file 1
Q
L
A D
1 10
4 5
5 9
Output file 2
1
4
5
パスワード:
while read -r line; if [[ $line == "A" ]] ||[[ $line == "Q" ]]||[[ $line == "L" ]] ; then
awk '$2 < "11" { print $0 }' test.txt
awk '$2 < "11" { print $1 }' test1.txt
done < input.file
答え1
簡単に使えます正規表現文字 A、L、または Q と条件で始まる行をフィルタリングします。awk
次のような場合に適しています。
awk '($0 ~ /^[AQL]/ || $2 < 11) { print $0 }' < input.file > output.file1
awk '($0 ~ /^[^AQL]/ && $2 < 11) { print $1 }' < input.file > output.file2
答え2
次のコマンドを使用してテストすると、うまく動作します。
注文する
awk '$1 !~ "Q|L" && $2 <11{print $1}' filename
出力
awk '$1 !~ "Q|L" && $2 <11{print $1}' filename
1
4
5