与えられた
ファイル1
1:b:c:4
ファイル2
1:3:47:8:aa:2
ファイル3
1:4:5:8:9:11:aaaaa:2:3:4:88:9:10
":"次の行の終わりを探したいと思います。各ファイルには常に1行しか含まれていません。
例えば
$ command file1
4
$ command file2
2
$ command file3
10
答え1
sed 's/.*://' file*
上記のコマンドは、sed
各行の最後の行まですべてを削除します。:
:
答え2
awk -F: '{print $NF}' file*
この awk コマンドは、最後の列 (:(コロン) で区切られた) を出力します。
答え3
使用bash
:
line=$(<file)
echo "${line##*:}"
file
変数を読みますline
。echo
変数を選択し、##
プレフィックスパターンに最も一致するものを削除します()。*:
そしてgrep
:
grep -ho '[^:]*$' file*
-o
入力ファイルがある場合にのみ、オプション(一致する部分のみ印刷)が必要です。-h
各一致の前にファイル名の印刷を抑制します。